package lib.bone.admin.controller.system.dto;

import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lib.bone.access.validator.IsSubjectType;
import lombok.Data;

import javax.validation.constraints.DecimalMin;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;

@Data
@ApiModel(value = "横向课题DTO")
public class SubjectImportDTO {

    @ApiModelProperty("主持人工号")
    @ExcelProperty(value = "主持人工号")
    private String usedrName;

    /**
     * 横向课题名称
     */
    @ExcelProperty(value = "项目名称")
    @ApiModelProperty(value = "项目名称",notes = "")
    String subjectName;

    @IsSubjectType
    @ExcelProperty(value = "横向课题类型")
    @ApiModelProperty(value = "横向课题类型",notes = "自然科学，社会科学")
    String subjectType;

    @DecimalMin("0")
    @ExcelProperty(value = "横向课题经费")
    @ApiModelProperty(value = "横向课题经费",notes = "")
    Double funds;

    /**
     * 横向课题负责人姓名
     */
    @ExcelProperty(value = "负责人")
    @ApiModelProperty(value = "横向课题负责人",notes = "")
    String leader;


    /**
     * 课题编码
     */
    @ExcelProperty(value = "课题编码")
    @ApiModelProperty("课题编码")
    String subjectCode;

    /**
     * 横向课题开始日期
     */
    @ExcelProperty(value = "课题开始日期")
    @ApiModelProperty(value = "课题开始日期",notes = "课题开始日期，如2021/11/16")
    @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
    Date startDate;

    /**
     * 纵向课题完成日期
     */
    @ExcelProperty(value = "课题结束日期")
    @ApiModelProperty(value = "课题结束日期",notes = "课题结束日期，如2021/11/16")
    @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
    Date endDate;

    /**
     * 横向课题成员ID列表
     */
    @ExcelProperty(value = "横向课题成员ID列表")
    @ApiModelProperty(value = "横向课题成员ID列表",notes = "")
    List<Long> userIdList;

    @ExcelProperty(value = "关联文件ID列表")
    @ApiModelProperty(value = "关联文件ID列表")
    List<String> fileIds;

    @ApiModelProperty("参与人1姓名")
    @ExcelProperty(value = "参与人1姓名")
    private String participate1;

    @ApiModelProperty("参与人1工号")
    @ExcelProperty(value = "参与人1工号")
    private String participateId1;

    @ApiModelProperty("参与人2姓名")
    @ExcelProperty(value = "参与人2姓名")
    private String participate2;

    @ApiModelProperty("参与人2工号")
    @ExcelProperty(value = "参与人2工号")
    private String participateId2;

    @ApiModelProperty("参与人3姓名")
    @ExcelProperty(value = "参与人3姓名")
    private String participate3;

    @ApiModelProperty("参与人3工号")
    @ExcelProperty(value = "参与人3工号")
    private String participateId3;

    @ApiModelProperty("参与人4姓名")
    @ExcelProperty(value = "参与人4姓名")
    private String participate4;

    @ApiModelProperty("参与人4工号")
    @ExcelProperty(value = "参与人4工号")
    private String participateId4;

    @ApiModelProperty("参与人5姓名")
    @ExcelProperty(value = "参与人5姓名")
    private String participate5;

    @ApiModelProperty("参与人5工号")
    @ExcelProperty(value = "参与人5工号")
    private String participateId5;

    @ApiModelProperty("参与人6姓名")
    @ExcelProperty(value = "参与人6姓名")
    private String participate6;

    @ApiModelProperty("参与人6工号")
    @ExcelProperty(value = "参与人6工号")
    private String participateId6;

    @ApiModelProperty("参与人7姓名")
    @ExcelProperty(value = "参与人7姓名")
    private String participate7;

    @ApiModelProperty("参与人7工号")
    @ExcelProperty(value = "参与人7工号")
    private String participateId7;

    @ApiModelProperty("参与人8姓名")
    @ExcelProperty(value = "参与人8姓名")
    private String participate8;

    @ApiModelProperty("参与人8工号")
    @ExcelProperty(value = "参与人8工号")
    private String participateId8;

    @ApiModelProperty("参与人9姓名")
    @ExcelProperty(value = "参与人9姓名")
    private String participate9;

    @ApiModelProperty("参与人9工号")
    @ExcelProperty(value = "参与人9工号")
    private String participateId9;

    @ApiModelProperty("参与人10姓名")
    @ExcelProperty(value = "参与人10姓名")
    private String participate10;

    @ApiModelProperty("参与人10工号")
    @ExcelProperty(value = "参与人10工号")
    private String participateId10;

    @ApiModelProperty("参与人11姓名")
    @ExcelProperty(value = "参与人11姓名")
    private String participate11;

    @ApiModelProperty("参与人11工号")
    @ExcelProperty(value = "参与人11工号")
    private String participateId11;

    @ApiModelProperty("参与人12姓名")
    @ExcelProperty(value = "参与人12姓名")
    private String participate12;

    @ApiModelProperty("参与人12工号")
    @ExcelProperty(value = "参与人12工号")
    private String participateId12;

    @ApiModelProperty("参与人13姓名")
    @ExcelProperty(value = "参与人13姓名")
    private String participate13;

    @ApiModelProperty("参与人13工号")
    @ExcelProperty(value = "参与人13工号")
    private String participateId13;

    @ApiModelProperty("参与人14姓名")
    @ExcelProperty(value = "参与人14姓名")
    private String participate14;

    @ApiModelProperty("参与人14工号")
    @ExcelProperty(value = "参与人14工号")
    private String participateId14;

    @ApiModelProperty("参与人15姓名")
    @ExcelProperty(value = "参与人15姓名")
    private String participate15;

    @ApiModelProperty("参与人15工号")
    @ExcelProperty(value = "参与人15工号")
    private String participateId15;

    @ApiModelProperty("参与人16姓名")
    @ExcelProperty(value = "参与人16姓名")
    private String participate16;

    @ApiModelProperty("参与人16工号")
    @ExcelProperty(value = "参与人16工号")
    private String participateId16;

    @ApiModelProperty("参与人17姓名")
    @ExcelProperty(value = "参与人17姓名")
    private String participate17;

    @ApiModelProperty("参与人17工号")
    @ExcelProperty(value = "参与人17工号")
    private String participateId17;

    @ApiModelProperty("参与人18姓名")
    @ExcelProperty(value = "参与人18姓名")
    private String participate18;

    @ApiModelProperty("参与人18工号")
    @ExcelProperty(value = "参与人18工号")
    private String participateId18;

    @ApiModelProperty("参与人19姓名")
    @ExcelProperty(value = "参与人19姓名")
    private String participate19;

    @ApiModelProperty("参与人19工号")
    @ExcelProperty(value = "参与人19工号")
    private String participateId19;

    @ApiModelProperty("参与人20姓名")
    @ExcelProperty(value = "参与人20姓名")
    private String participate20;

    @ApiModelProperty("参与人20工号")
    @ExcelProperty(value = "参与人20工号")
    private String participateId20;


}
